/***********************************************************************
 *                           日期操作工具类
 *                     注：调用方式，dateUtil.方法名
 * ********************************************************************/
var dateUtil = {
    getDate: function () {
        return new Date();
    },
    getTime: function () {
        return dateUtil.getDate().getTime();
    },
    // 获取今天日期 yyyy-MM-dd
    getToday: function () {
        return dateUtil.date2String(dateUtil.getDate(), 'yyyy-MM-dd');
    },
    // 获取明天日期 yyyy-MM-dd
    getTomorrow: function () {
        var date = dateUtil.getDate();
        date.setDate(date.getDate() + 1);
        return dateUtil.date2String(date, 'yyyy-MM-dd');
    },
    // 获取本年
    getCurrentYear: function () {
        return dateUtil.getDate().getFullYear();
    },
    // 日期转字符串
    date2String: function (date, format) {
        format = format || 'yyyy-MM-dd HH:mm:ss';
        var o = {
            'M+': date.getMonth() + 1, // month
            'd+': date.getDate(), // day
            'h+': date.getHours(), // hour
            'm+': date.getMinutes(), // minute
            's+': date.getSeconds(), // second
            'q+': Math.floor((date.getMonth() + 3) / 3), // quarter
            'S': date.getMilliseconds() //millisecond
        };
        if (/(y+)/.test(format)) {
            format = format.replace(RegExp.$1, (date.getFullYear() + '').substr(4 - RegExp.$1.length));
        }
        for (var k in o) {
            if (/'(' + k + ')'/.test(format)) {
                format = format.replace(RegExp.$1, RegExp.$1.length == 1 ? o[k] : ('00' + o[k]).substr(('' + o[k]).length));
            }
        }
        return format;
    },
    // 字符串转日期
    string2Date: function (dateStr, format) {

    }
};


/***********************************************************************
 *                           字符串操作工具类
 *                     注：调用方式，strUtil.方法名
 * ********************************************************************/
var strUtil = {
    // 判断字符串是否为空
    isEmpty: function (str) {
        return str != null && str.length > 0;
    },
    isNotEmpty: function (str) {
        return !strUtil.isEmpty(str);
    },
    // 判断两个字符串子否相同
    isEquals: function (str1, str2) {
        return str1 == str2;
    },
    // 忽略大小写判断字符串是否相同
    isEqualsIgnorecase: function (str1, str2) {
        return str1.toUpperCase() == str2.toUpperCase();
    },
    // 判断是否是数字
    isNum: function (value) {
        return value != null && value.length > 0 && isNaN(value) == false
    },
    // 判断是否是中文
    isZH: function (str) {
        return !/^([u4E00-u9FA5]|[uFE30-uFFA0])*$/.test(str);
    },
    // 判断对象是否为json
    isJson: function (obj) {
        return typeof(obj) == 'object'
            && Object.prototype.toString.call(obj).toLowerCase() == '[object object]'
            && !obj.length;
    },
    // 判断对象是否为数组
    isArray: function (o) {
        return Object.prototype.toString.call(o) == '[object Array]';
    },

    // 获取随机数
    getRandom: function (length) {
        length = length || 8;
        return Math.random().toString().substr(2, length);
    },
    // 将json转为url的字符串
    jsonToStr: function (json) {
        if (!json) return '';
        var str = '';
        for (var key in json) {
            str += key + '=' + json[key] + '&'
        }
        return str.slice(0, -1);
    },
    // 将url的字符串转为json
    strToJson: function (str) {
        if (!str) return {};
        var json = {};
        $(str.split('&')).each(function (i, e) {
            var keyValue = e.split('=');
            json[keyValue[0]] = keyValue[1];
        });
        return json;
    }
};

// 序列化表单为json对象
$.fn.serializeObject = function () {
    var o = {};
    var a = this.serializeArray();
    $.each(a, function () {
        if (o[this.name]) {
            if (!o[this.name].push) {
                o[this.name] = [o[this.name]];
            }
            o[this.name].push(this.value || '');
        } else {
            o[this.name] = this.value || '';
        }
    });
    return o;
};

// console打印
$.console_ = function (obj) {
    if (typeof console !== 'undefined') console.log(obj);
};